package com.nidu.demo.notify.api;

import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.nidu.demo.notify.dto.*;

import java.util.Set;

/**
 * 站内信消息模板接口
 *
 * @author auto
 */
public interface SysNotifyTemplateService {

    /**
     * 创建站内信模板
     *
     * @param cmd 站内信发送命令
     * @return 发送结果
     */
    Response add(NotifyTemplateAddCmd cmd);

    /**
     * 更新站内信模板
     *
     * @param cmd 站内信发送命令
     * @return 发送结果
     */
    Response update(NotifyTemplateUpdateCmd cmd);

    /**
     * 删除站内信模板
     *
     * @param id 站内信模板id
     * @return 操作结果
     */
    Response delete(Long id);

    /**
     * 批量删除站内信模板
     * @param ids 站内信模板id列表
     * @return 操作结果
     */
    Response delete(Set<Long> ids);

    /**
     * 获取站内信模板详情
     *
     * @param id 站内信ID
     * @return 站内信详情
     */
    SingleResponse<NotifyTemplateCO> getById(Long id);


    /**
     * 查询站内信模板列表
     * @param qry
     * @return
     */
    MultiResponse<NotifyTemplateCO> list(NotifyTemplateListQry qry);

    /**
     * 分页查询站内信模板
     *
     * @param qry 分页查询条件
     * @return 分页结果
     */
    PageResponse<NotifyTemplateCO> page(NotifyTemplatePageQry qry);

}
